#!/bin/sh
#Tag 0x10646
#
# The contents of this file are subject to the Netscape Public License
# Version 1.0 (the "NPL"); you may not use this file except in
# compliance with the NPL.  You may obtain a copy of the NPL at
# http://www.mozilla.org/NPL/
#
# Software distributed under the NPL is distributed on an "AS IS" basis,
# WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
# for the specific language governing rights and limitations under the
# NPL.
#
# The Initial Developer of this code under the NPL is Netscape
# Communications Corporation.  Portions created by Netscape are
# Copyright (C) 1998 Netscape Communications Corporation.  All Rights
# Reserved.
#

## $Id: mozilla-xremote-client.sh,v 1.4 2003/07/23 02:08:39 nickb Exp $
## 
## Usage:
##
## $ mozilla [args]
##
## This script is meant to run the mozilla-xremote-client binary 
##
## The script will setup all the environment voodoo needed to make
## the mozilla-bin binary to work.
##

#uncomment for debugging
#set -x

moz_libdir=/var/netscape/mozilla
MRE_HOME=/usr/local/lib/mre/mre-1.0.1
# Changed to "new-window" if you prefer a new window rather than tab
OPTION="new-tab"

# honor MOZILLA_FIVE_HOME if it's there
if [ -n "$MOZILLA_FIVE_HOME" ] ; then
  dist_bin="$MOZILLA_FIVE_HOME"
else
  # Use run-mozilla.sh in the current dir if it exists
  # If not, then start resolving symlinks until we find run-mozilla.sh
  found=0
  progname=$0
  curdir=`dirname $progname`
  run_moz="$curdir/run-mozilla.sh"
  if test -x $run_moz; then
    dist_bin=$curdir
    found=1
  else
    here=`/bin/pwd`
    while [ -h "$progname" ]; do
      bn=`basename "$progname"`
      cd `dirname "$progname"`
      progname=`/bin/ls -l "$bn" |sed -e 's/^.* -> //' `
      if [ ! -x "$progname" ]; then
        break
      fi
      curdir=`dirname $progname`
      run_moz="$curdir/run-mozilla.sh"
      if [ -x $run_moz ]; then
        cd $curdir
        dist_bin=`pwd`
        found=1
        break
      fi
    done
    cd $here
  fi
  if [ $found = 0 ]; then
    # Check default compile-time libdir
    if [ -x "$moz_libdir/run-mozilla.sh" ]; then
      dist_bin=$moz_libdir
    else 
      echo "Cannot find mozilla runtime directory. Exiting."
      exit 1
    fi
  fi
fi

script_args=""
moreargs=""
debugging=0
XREMOTE_BIN="mozilla-xremote-client"
MOZILLA_BIN="mozilla-bin"

if [ "$OSTYPE" = "beos" ]; then
  mimeset -F $MOZILLA_BIN
fi

while [ $# -gt 0 ]
do
  case "$1" in
    -g | --debug)
      script_args="$script_args -g"
      debugging=1
      shift
      ;;
    -d | --debugger)
      script_args="$script_args -d $2"
      shift 2
      ;;
    -mailto)
	 startup_args="-compose to="
        remote_args="mailto("
        if [ $2 ]; then
                remote_args="$remote_args $2"
		startup_args="$startup_args$2"
                shift 1
                while [ $2 ] ; do
                        remote_args="$remote_args, $2"
			startup_args="$startup_args $2"
                        shift 1
                done
        fi
        remote_args="$remote_args )"
	startup_args="$startup_args"
	shift 1
      ;;
    -mail)
        remote_args="xfeDoCommand(openInbox)"
	startup_args="-mail"
        shift 1
      ;;
    -editor)
	remote_args="-editor"
	startup_args="-editor"
	shift 1
	if [ $1 ]; then
		startup_args="-edit $1"
		shift 1
	fi
     ;;
    *)
      moreargs="$moreargs \"$1\""
      shift 1
      ;;
  esac
done

export MRE_HOME
eval "set -- $moreargs"
if [ -z "$remote_args" ]; then
	remote_args="openURL($1, $OPTION)"
	startup_args="$1"
fi

# no way to invoke the editor by "remote" :-(
if [ "$remote_args" = "-editor" ]; then
	${dist_bin}/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN -splash dummy_arg $startup_args &
else
	$dist_bin/run-mozilla.sh $script_args $dist_bin/$XREMOTE_BIN "$remote_args"
	if [ $? -eq 2 ]; then
# note: the dummy_arg is necessary as the arg parsing code swallows the arg after a -arg
		${dist_bin}/run-mozilla.sh $script_args $dist_bin/$MOZILLA_BIN -splash dummy_arg $startup_args &
	fi
fi

